package main

import (
	"github.com/gin-gonic/gin"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"net/http"
)

var (
	DB *gorm.DB
)
type Todo struct {
	ID      int        `json:"id"`
	Title   string  `json:"title"`
	Status  bool   `json:"status"`
}

func initMysql() {
	dsn := "root:Joker.532698@tcp(127.0.0.1:3306)/bubble?charset=utf8mb4&parseTime=True&loc=Local"
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		println("failed...")
	}

	//create database
	db.AutoMigrate(&Todo{})
}

func main() {
	//创建数据库

	//连接数据库
    initMysql()


	//绑定模型

      r := gin.Default()
	  //告诉gin磨板文件引用的静态文件
	  r.Static("/static","static")
	  //去哪个文件夹找
	  r.LoadHTMLGlob("template/*")
	  r.GET("/", func(c *gin.Context) {
		  c.HTML(http.StatusOK,"index.html",nil)
	  } )
		  r.Run(":9090")
	  //路由组
v1Group:= r.Group("v1")
{
	//增加1从请求中把数据拿出来2存入数据库3返回响应
v1Group.POST("/todo", func(c *gin.Context) {
	var todo Todo
c.BindJSON(&todo)
err := DB.Create(&todo)
	if err != nil {
		c.JSON(http.StatusOK,gin.H{"erros":err.Error})
	}else {
		c.JSON(http.StatusOK,todo)//返回响应
	}
})
//查看某一个和所有的代办事项
v1Group.GET("/todo", func(c *gin.Context) {

})
v1Group.GET("/todo/:id", func(c *gin.Context) {

})
v1Group.PUT("/todo/:id", func(c *gin.Context) {

})
v1Group.DELETE("/todo/:id", func(c *gin.Context) {

})
}
//代办事项增删改查
}